package io;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

import static java.lang.Integer.toBinaryString;

/**
 * 使用文件出入流从文件中读取字节数据.
 */
public class FISDemo {
    public static void main(String[] args) throws IOException {
        /** int read() 读取 */
        /*
            读取1个字节，读取到的8位2进制存入一个int值的“低8位”上，高24位全部补0
            如果读取到了文件末尾，则返回的int值为-1。
            注:int型-1的2进制样子:11111111 11111111 11111111 11111111

            fos.dat内容:
            00000001 00000010
            ^^^^^^^^

            fos.dat文件中读取的第一个字节内容为:"00000001"
            返回的int值d对应的2进制为:00000000 00000000 00000000 00000001
         */
        FileInputStream fis = new FileInputStream("fos.dat");

        int b = fis.read();
        System.out.println(b);
        System.out.println(toBinaryString(b));
        /*
            fos.dat内容:
            00000001 00000010
                     ^^^^^^^^
            d:00000000 00000000 00000000 00000010
         */
        b = fis.read();
        System.out.println(b);
        System.out.println(toBinaryString(b));
        /*
            fos.dat内容:
            00000001 00000010
            ^^^^^^^^
         */
        b = fis.read();
        System.out.println(b);
        System.out.println(toBinaryString(b));
        fis.close();

    }
}
